In digital printing, such as with well-known technologies such as "laser printing" or ink-jet printing, digital image data representative of a particular image desired to be printed is supplied to hardware, such as a modulating laser or an ink-jet printhead. In general, from the perspective of providing an attractive appearance for the printed output, a higher resolution is always better. If a resolution of the printer is too low, certain well-known artifacts will result in the printed sheet, particularly jagged edges around curved lines or curved borders of alphanumeric characters. At the same time, there are advantages to providing image data to printing hardware which is of a relatively low resolution: foremost among these advantages is the fact that, at a lower resolution, significantly less data is required to express an image desired to be printed. There is therefore an advantage to a capability of deriving from relatively low resolution image data, such as at 300 dpi, image data which can operate hardware at a high resolution, such as at 600 dpi or higher.
In the prior art, there have been proposed many techniques for performing this "resolution enhancement." Some of these techniques will be described in detail below, but many of them basically involve taking the original low-resolution data and interpolating image data which appears to represent curved lines and orders, and in effect "filling in" extra pixels to smooth out where jagged edges would appear.
Various interpolation or smoothing techniques have different advanatages and disadvantages. For example, some techniques may require that the image data be temporarily retained in a memory so that an interpolation function can be carried out on the data; such temporary caching of image data will of course represent a consumption of time and memory, with the long-term effect of causing printing efficiency to suffer. Other techniques are capable of operating on image data in close to "real-time," in effect altering the original low-resolution data while the data is on its way to the hardware. This "real-time" resolution enhancement typically operates by consistently applying an algorithm to the stream of image data. One drawback to many "real-time" systems is that the consistent application of a particular algorithm may have unpredictable effects depending on the nature of the original image data: an algorithm which is successful in smoothing out the borders of alphanumeric characters may have a deleterious effect when applied to, for example, data attempting to express a halftone image.
The present invention describes a real-time resolution enhancement technique which preserves the advantages of a real-time technique, while ensuring the integrity of certain data which describes certain types of images, such as halftones.